package com.antis.olsl.magic.net;

import com.antis.olsl.library.net.api.service.BaseApiServer;
import com.antis.olsl.magic.response.GetBrandEfficiencyListResp;
import com.antis.olsl.magic.response.GetCategoryEfficiencyListResp;
import com.antis.olsl.magic.response.GetDistributionSlipListRes;
import com.antis.olsl.magic.response.GetExWarehouseTopListResp;
import com.antis.olsl.magic.response.GetGuestListResp;
import com.antis.olsl.magic.response.GetLevel5ProfitCashFlowResp;
import com.antis.olsl.magic.response.GetLevel5ProfitCostAnalysisResp;
import com.antis.olsl.magic.response.GetOrderQueryListRes;
import com.antis.olsl.magic.response.GetProductEfficiencyListResp;
import com.antis.olsl.magic.response.GetSalesSummaryResp;
import com.antis.olsl.magic.response.GetSeasonsAnalysisResp;
import com.antis.olsl.magic.response.GetTopAnalysisDetailResp;
import com.antis.olsl.magic.response.GetTopAnalysisTotalResp;
import com.antis.olsl.magic.response.GetVerifyCodeRes;
import com.antis.olsl.magic.response.StaveSummaryResp;

import io.reactivex.Flowable;
import retrofit2.http.Body;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface ApiServer extends BaseApiServer {

    String API_SCHEDULE = "api-schedule";

    @POST(API_SCHEDULE + "/app/report/selectOrderList")
    Flowable<GetOrderQueryListRes> selectOrderList(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageDailySalesSummary")
    Flowable<GetSalesSummaryResp> getDailySalesSummary(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageSalesDailyDetails")
    Flowable<GetSalesSummaryResp> getSalesDailyDetails(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageWeekSalesSummary")
    Flowable<GetSalesSummaryResp> getWeekSalesSummary(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageWeekSalesDetails")
    Flowable<GetSalesSummaryResp> getWeekSalesDetails(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageMonthSalesSummary")
    Flowable<GetSalesSummaryResp> getMonthSalesSummary(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageMonthSalesDetails")
    Flowable<GetSalesSummaryResp> getMonthSalesDetails(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageSeasonSalesSummary")
    Flowable<GetSalesSummaryResp> getSeasonSalesSummary(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageSeasonSalesDetails")
    Flowable<GetSalesSummaryResp> getSeasonSalesDetails(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageYearSalesSummary")
    Flowable<GetSalesSummaryResp> getYearSalesSummary(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPageYearSalesDetails")
    Flowable<GetSalesSummaryResp> getYearSalesDetails(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/code/getVerification")
    Flowable<GetVerifyCodeRes> getVerification(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/selectDistributionList")
    Flowable<GetDistributionSlipListRes> getDistributionList(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/listPlanningPosgrade")
    Flowable<GetGuestListResp> getGuestList(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getSeasonsAnalysis")
    Flowable<GetSeasonsAnalysisResp> getSeasonsAnalysis(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getTopAnalysisTotal")
    Flowable<GetTopAnalysisTotalResp> getTopAnalysisTotal(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getTopAnalysisDetail")
    Flowable<GetTopAnalysisDetailResp> getTopAnalysisDetail(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getLevel5ProfitCashFlow")
    Flowable<GetLevel5ProfitCashFlowResp> getLevel5ProfitCashFlow(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getLevel5ProfitCostAnalysis")
    Flowable<GetLevel5ProfitCostAnalysisResp> getLevel5ProfitCostAnalysis(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/staveSummary")
    Flowable<StaveSummaryResp> staveSummary(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getViolenceAnalysis")
    Flowable<GetTopAnalysisTotalResp> getViolenceAnalysis(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getViolenceAnalysisDetail")
    Flowable<GetTopAnalysisDetailResp> getViolenceAnalysisDetail(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getProductEfficiencyList")
    Flowable<GetProductEfficiencyListResp> getProductEfficiencyList(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getBrandEfficiencyList")
    Flowable<GetBrandEfficiencyListResp> getBrandEfficiencyList(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/getCategoryEfficiencyList")
    Flowable<GetCategoryEfficiencyListResp> getCategoryEfficiencyList(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);

    @POST(API_SCHEDULE + "/app/report/exwarehouseTopList")
    Flowable<GetExWarehouseTopListResp> getExWarehouseTopList(@Body String filed, @Query("access_token") String accessToken, @Query("type") int type);
}
